Claude Code 构建企业级项目
当企业项目包含前端、后端、文档等多个独立模块时,直接在单一模块目录使用 Claude Code 会遇到问题:
- 上下文割裂 - Claude 不知道当前模块与其他模块的依赖关系
- 技术栈混淆 - 前端 Vue 规范和后端 Java 规范混在一起,容易产生错误建议
- 团队协作困难 - 不同子模块由不同团队维护,缺乏统一的入口说明
通过 Git Submodule + 分层 CLAUDE.md 结构可以解决这些问题:
- 根目录 CLAUDE.md - 全局视角,描述模块间关系、整体架构、跨模块开发规范
- 子模块 CLAUDE.md - 局部视角,描述该模块的技术栈、代码规范、构建命令
目录结构
project/ # 父仓库根目录
├── docs # 项目文档、需求设计文档,包括测试,以及各种文档
│ ├── AGENTS.md
│ └── CLAUDE.md
├── pigx # Java 后端服务(Spring Cloud)
│ ├── AGENTS.md
│ └── CLAUDE.md
├── pigx-ai-app # APP 应用
│ ├── AGENTS.md
│ └── CLAUDE.md
├── pigx-ui # 前端应用(Vue3 + TypeScript)
│ └── CLAUDE.md
├── AGENTS.md # 全局 Agent 指令(Codex 兼容)
└── CLAUDE.md # 项目整体上下文(入口)
CLAUDE.md 编写规范
核心原则
CLAUDE.md 是唯一默认加载到每次对话的文件,内容越精简,Claude 的执行效果越好:
| 原则 | 说明 |
|---|
| 少即是多 | 控制在 300 行以内更佳 |
| 普遍适用 | 只写对所有任务都适用的内容 |
| 具体明确 | 避免模糊指令如「代码要规范」 |
| 不替代 Linter | 代码格式交给工具SKILL,不写进 CLAUDE.md |
WHY-WHAT-HOW 框架
# 项目名称(WHAT)
一句话说明项目是什么。
## 技术栈(WHAT)
- 后端:Java 17 + Spring Boot 3.x
- 前端:Vue3 + TypeScript
## 项目结构(WHAT)
- `src/main/` - 业务代码
- `src/test/` - 测试代码
## 常用命令(HOW)
- 启动:`mvn spring-boot:run`
- 测试:`mvn test`
## 开发约定(WHY + HOW)
- Controller 不写业务逻辑(因为要保持单一职责)
- 使用 R 类统一返回格式(因为前端需要统一解析)
渐进式披露
将详细文档拆分到独立文件,CLAUDE.md 只做索引:
## 详细文档
- 构建指南:@docs/building.md
- 测试规范:@docs/testing.md
- 部署流程:@docs/deployment.md
⚠避免自动生成
不要使用 /init 自动生成后直接使用,CLAUDE.md 应该精心编写。
根目录 CLAUDE.md 编写
根目录的 CLAUDE.md 负责全局上下文,包含三个核心部分:
# PIG Cloud 企业级微服务平台
基于 Spring Cloud + Vue3 的企业级微服务解决方案。
## 模块概览
...
## 跨模块开发规范
- 后端 API 变更必须同步更新 `pig-docs/` 中的接口文档
- 前端调用新接口前,确认后端已合并到 dev 分支
## 模块详细说明
各模块的技术细节、构建命令、代码规范请参考对应目录下的 CLAUDE.md:
- 后端开发:参考 `pigx/CLAUDE.md`
- 前端开发:参考 `pigx-ui-pro/CLAUDE.md`
- AI 开发:参考 `pigx-ai-app/CLAUDE.md`
- 文档编写:参考 `pig-docs/CLAUDE.md`
子模块 CLAUDE.md 编写
子模块的 CLAUDE.md 专注于该模块的具体规范。以后端模块为例:
# PIGX 后端服务
Spring Cloud 微服务架构,提供用户、权限、业务等核心能力。
## 技术栈
- Java 17 + Spring Boot 3.x + Spring Cloud 2023
- MyBatis Plus + MySQL 8.0 + Redis
- Maven 多模块构建
## 项目结构
- `pigx-auth/` - 认证授权服务
- `pigx-gateway/` - 网关服务
- `pigx-upms/` - 用户权限管理
- `pigx-common/` - 公共模块
## 代码规范
- Controller 只做参数校验和结果封装,业务逻辑放 Service
- 统一使用 R 类返回结果
- 异常通过 GlobalExceptionHandler 统一处理
上下文继承机制
Claude Code 的上下文读取规则:
| 工作目录 | 读取的 CLAUDE.md | 适用场景 |
|---|
project/ | 根目录 CLAUDE.md | 跨模块任务、架构设计 |
project/pigx/ | pigx/CLAUDE.md | 后端开发 |
project/pigx-ui-pro/ | pigx-ui-pro/CLAUDE.md | 前端开发 |
💡上下文隔离
在子模块目录启动 Claude Code 时,Claude 只会读取该子模块的 CLAUDE.md,不会自动读取父目录的内容。如需跨模块上下文,请在根目录启动。
跨模块业务开发
企业级项目中,一个业务功能往往涉及多个模块的协同修改:
# 示例:新增「用户导出」功能
pigx/
└── pigx-upms/pigx-upms-biz/ # 后端:导出接口实现
└── pigx-common/pigx-common-excel/ # 后端:Excel 工具封装
pigx-ui-pro/
└── src/views/admin/user/ # 前端:导出按钮和交互
pig-docs/
└── docs/api/upms.md # 文档:接口说明更新
在根目录启动 Claude Code
跨模块开发时,必须在父仓库根目录启动 Claude Code:
此时 Claude 读取根目录的 CLAUDE.md,能够理解所有模块的位置和职责,可以同时修改多个子模块的代码。
根目录 CLAUDE.md 补充业务模块映射
在根目录 CLAUDE.md 中添加业务功能与代码模块的对应关系:
前后端业务模块映射
| 业务功能 | 后端模块 | 前端路径 | 文档位置 |
|---|
| 用户管理 | pigx/pigx-upms/ | pigx-ui-pro/src/views/admin/user/ | pig-docs/docs/api/upms.md |
| 认证授权 | pigx/pigx-auth/ | pigx-ui-pro/src/views/login/ | pig-docs/docs/api/auth.md |
| 代码生成 | pigx/pigx-codegen/ | pigx-ui-pro/src/views/gen/ | pig-docs/docs/api/gen.md |
使用并行 Agent 加速开发
对于复杂的跨模块任务,可以让 Claude 派发多个子 Agent 并行工作:
用户:实现用户批量导出功能,需要后端接口、前端按钮、接口文档
Claude 执行:
├── Agent 1 → pigx/pigx-upms/ 编写导出接口
├── Agent 2 → pigx-ui-pro/ 添加导出按钮
└── Agent 3 → pig-docs/ 更新接口文档
💡根目录启动
跨模块任务必须在根目录启动 Claude Code。在子模块目录启动时,Claude 无法访问其他子模块的代码。